declare module "*.scss" {
  interface IClassNames {
    [className: string]: string
  }
  const classNames: IClassNames;
  export = classNames
}

declare module "*.png";
declare module "*.jpg";
declare module "*.jpeg";
declare module "*.svg"{
  import React from "react";

  const SVG: React.VFC<React.SVGProps<SVGSVGElement>>;
  export default SVG;
}

declare const __IS_DEV__: boolean;
declare const __API__: string;
declare const __PROJECT__: "frontend" | "jest";

type DeepPartial<T> = T extends object ? {
  [P in keyof T]?: DeepPartial<T[P]>;
} : T;

type OptionalRecord<K extends keyof any, T> = {
  [P in K]?: T;
};

type SomePropertyFrom<T> = {
  [K in keyof T]: Pick<Required<T>, K>
}[keyof T]

declare module "app1/CounterAppOne" {
	const CounterAppOne: React.ComponentType;

	export default CounterAppOne;
}

declare module "app2/CounterAppTwo" {
	const CounterAppTwo: React.ComponentType;

	export default CounterAppTwo;
}
